Partitionnement Déterministe pour Résoudre les Problèmes de Programmation Par Contraintes en utilisant le Framework Parallèle Bobpp
نویسندگان
چکیده
Résumé Cet article présente une stratégie de partitionnement déterministe pour paralléliser le parcours des espaces de recherche, dans le but de résoudre les problèmes de Programmation Par Contraintes (PPC). Ce travail est réalisé dans le cadre d’un projet industriel nommé PAJERO, dont le but est de proposer un solveur de PPC parallèle qui doit répondre toujours la même solution en utilisant le mode séquentiel ou parallèle. Il est clair que l’exploration parallèle des espaces de recherche modifie l’ordre dans lequel les nœuds solutions sont visités. Dans le contexte où la première solution trouvée est retournée à l’utilisateur, l’utilisation de plusieurs cœurs de calcul peut modifier la solution retournée. Dans la littérature, plusieurs stratégies non déterministes ont été proposées pour paralléliser l’exploration des espaces de recherche. La plupart de ces stratégies sont basées sur la technique de vol de travail (Work Stealing). Celle-ci est utilisée pour partitionner dynamiquement l’espace de recherche en sousespaces, puis à affecter chaque sous-espace à un cœur de calcul. Notre étude consiste à rendre l’algorithme de recherche parallèle déterministe par rapport à l’algorithme séquentiel. Nous considérons que l’algorithme de recherche séquentielle est déterministe. La solution proposée est simple et élégante. Elle consiste à introduire un ordre total sur les nœuds, dans le but de retourner toujours la même solution que la première solution retournée en séquentiel, quel que soit le nombre de cœurs utilisés. Pour évaluer cette stratégie de partitionnement déterministe, nous avons effectué des expériences en utilisant un solveur de PPC nommé Google OR-Tools au-dessus de notre framework parallèle Bobpp. Les performances sont illustrées par la résolution des problèmes de PPC modélisés en utilisant le format FlatZinc.
منابع مشابه
Utilisation du backtrack intelligent dans un branch-and-bound. Application au problème d'Open-Shop
La plupart des recherches arborescentes utilisées en recherche opérationnelle pour résoudre les problèmes d’atelier sont des procédures de séparation-évaluation en profondeur d’abord qui utilisent un backtrack chronologique qui présente quelques inconvénients comme le thrashing. Ces recherches arborescentes énumèrent non pas sur des variables, comme il est courant dans la communauté Programmati...
متن کاملOn Partitioning Problems with Complex Objectives
Hypergraph and graph partitioning tools are used to partition work for efficient parallelization of many sparse matrix computations. Most of the time, the objective function that is reduced by these tools relates to reducing the communication requirements, and the balancing constraints satisfied by these tools relate to balancing the work or memory requirements. Sometimes, the objective sought ...
متن کاملÉvaluer la difficulté d’une grille de sudoku à l’aide d’un modèle contraintes
Le sudoku est un jeu de logique qui est devenu en quelques mois un phénomène de société en France. Il envahit les métros, les trains, les bus, les salles de cours et même le journal Le Monde. Grâce à ce jeu, le grand public est devenu le M. Jourdain de la Programmation Par Contraintes. En effet, l’intérêt de ce jeu pour montrer très rapidement et très simplement les principes premiers de la pro...
متن کاملProgrammation par contraintes avec des fourmis
On explore dans cet article les possibilités d’intégration de la métaheuristique d’optimisation par colonies de fourmis (ACO) dans un langage de programmation par contraintes (PPC). L’idée est d’utiliser un langage de PPC pour décrire le problème à résoudre, ainsi que pour propager et vérifier les contraintes, et d’utiliser ACO pour guider la recherche de solutions. On illustre notre approche s...
متن کاملRecherche coopérative et Nogood Recording
RÉSUMÉ. Dans le cadre du problème de satisfaction de contraintes, nous proposons un nouveau schéma de recherche parallèle coopérative. La coopération est réalisée en échangeant des nogoods (instanciations qui ne peuvent être étendues en une solution). Nous associons un processus à chaque solveur et nous introduisons un gestionnaire de nogoods, afin de réguler les échanges de nogoods. Chaque sol...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- CoRR
دوره abs/1406.2844 شماره
صفحات -
تاریخ انتشار 2014